package cn.xlbweb.cli.service;

import cn.xlbweb.cli.model.Role;
import cn.xlbweb.cli.common.ServerResponse;
import cn.xlbweb.cli.common.TableResponse;
import cn.xlbweb.cli.common.TreeResponse;
import cn.xlbweb.cli.pojo.dto.RolesListDTO;

/**
 * @author: bobi
 * @date: 2019-09-16 23:16
 * @description:
 */
public interface IRoleService {

    /**
     * 分页模糊查询角色
     *
     * @param rolesListDTO
     * @param pageNum
     * @param pageSize
     * @return
     */
    TableResponse listRoles(RolesListDTO rolesListDTO, int pageNum, int pageSize);

    /**
     * 插入角色
     *
     * @param role
     * @return
     */
    ServerResponse insertRole(Role role);

    /**
     * 更新角色
     *
     * @param role
     * @return
     */
    ServerResponse updateRole(Role role);

    /**
     * 删除角色
     *
     * @param ids
     * @return
     */
    ServerResponse deleteRole(String ids);

    /**
     * 根据角色获取对应的权限树
     *
     * @param roleId
     * @return
     */
    TreeResponse getTree(Integer roleId);

    /**
     * 为角色赋权
     *
     * @param roleId
     * @param permissionIds
     * @return
     */
    ServerResponse authorize(Integer roleId, String permissionIds);
}
